package com.ming.mallchat.common.user.service;

import com.ming.mallchat.common.common.domain.vo.resp.ApiResult;
import com.ming.mallchat.common.user.domain.dto.ItemInfoDTO;
import com.ming.mallchat.common.user.domain.dto.SummeryInfoDTO;
import com.ming.mallchat.common.user.domain.vo.req.user.ItemInfoReq;
import com.ming.mallchat.common.user.domain.vo.req.user.SummeryInfoReq;
import com.ming.mallchat.common.user.domain.vo.resp.user.BadgeResp;
import com.ming.mallchat.common.user.pojo.User;
import com.ming.mallchat.common.user.domain.vo.resp.user.UserInfoResp;

import java.util.List;

/**
* @author 86150
* @description 针对表【user(用户表)】的数据库操作Service
* @createDate 2023-09-26 14:58:20
*/
public interface UserService {

    Long register(User user);

    /**
     * 获取用户基本信息
     * @param uid 用户id
     * @return {@link ApiResult}<{@link UserInfoResp}>
     */
    UserInfoResp userinfo(Long uid);


    /**
     * @param name 用户修改的名称
     * @param uid 用户id
     */
    void modifyName(String name, Long uid);

    /**
     * @param uid 用户id
     * @return {@link List}<{@link BadgeResp}>
     */
    List<BadgeResp> badges(Long uid);


    /**
     * @param uid 用户id
     * @param itemId 徽章id
     */
    void badge(Long uid, Long itemId);

    /**
     *
     * @param uid
     */
    void black(Long uid);

     /**
     * 获取用户汇总信息
     *
     * @param req
     * @return
     */
    List<SummeryInfoDTO> getSummeryUserInfo(SummeryInfoReq req);

    List<ItemInfoDTO> getItemInfo(ItemInfoReq req);
}
